                    **********************************
                    *                                *
                    *  !Grapher -  Tom Hughes 1993  *
                    *                                *
                    **********************************

This software is COPYRIGHT, but has been released as FREEWARE. Please see
the end of this file for conditions of use and distribution.

About the Software
******************

!Grapher plots graphs of mathematical functions which may then be saved as
draw files or sprites or printed out. This version can handle plots of
linear functions (y=f(x) and y=f(x)), parametric functions (x and y are
functions of t) and polar functions (r is a function of x).

Installing the Software
***********************

!Grapher makes use of a large number of BASIC libraries (currently five),
which reside inside the application. Users may well wish to move these to
their library directory, particularly if they have more than one of my
programs which use these libraries.

This can be done without any difficulty, as the program will always search
the library directory when looking for these files. In fact, it uses the
Grapher$Path variable set in the !Run file, so anywhere on this path is
fine.

The default font used on the graphs is 10pt Homerton Medium, but this can be
changed by altering the settings of the system variables Grapher$GraphFont
and Grapher$GraphFontSize in the !Run file.

Using the Software
******************

Use of the software is generally straightforward. It loads to the iconbar,
and a click on the icon brings up a dialogue for plotting curve where y is a
fucntion of x. Other curve types are available via the menu, as are the
settings of the default options for grid, axis and scale, as well as 'Force
Zeros'. If selected, this option ensures that the zeros are always present
on a graph, even if the graph does not reach the axis. This is important
when auto-scaling is used.

Plotting a curve is as simpe, as typing in an equation, plus the limits for
one or more of the variables involved. In all cases, the limits for one
variable is enough, and all the other limits can be calculated
automatically by the program. This behaviour may be overridden however, and
this is useful for curves with asymptotes.

The equations and limits can be any expression acceptable to BASIC, with a
few extensions, detailed here. Case is unimportant in all entries,
multiplication symbols can usually be left out, as in normal algebra, and a
number of extra functions have been provided. A full list of functions is:

exp(x), sqr(x), abs(x), sgn(x), log(x), ln(x), sin(x), cos(x), tan(x),
asn(x), arcsin(x), acs(x), arccos(x), atn(x), arctan(x), sec(x), cosec(x),
cot(x), arcsec(x), arccosec(x), arccot(x), sinh(x), cosh(x), tanh(x),
arsinh(x), arcosh(x), artanh(x), sech(x), cosech(x), coth(x), arsech(x),
arcosech(x), arcoth(x), fact(x), C(n,r), P(n,r).

Up to four plots may be put on one graph, although the first scale is used
for all subsequent plots. File may be saved as draw file, sprites, or in
Graphers own format, which allows plots to be reloaded.

Planned Future Extensions
*************************

 - Support for plotting implicit functions.

 - Support for !Help.

 - Loads of things I haven't thought of yet!

Bugs, Misfeatures and Idoiosyncracies
*************************************

Please note that this application needs RISC OS 3 or later to run. This is
because I started writing my libraries within a week of getting my machine,
and used lots of new features without realising it. Changing the libraries
now would be impossibly difficult, so my BASIC applications will only work
with RISC OS 3. Sorry folks.

You will probably find that the edge of the graph cannot be seen if you save
the graph as a drawfile into !Draw. This can be corrected by doing a select
all and then moving the graph into the middle of the picture. Unfortunately,
!Draw cuts off anything to the left of or below (0,0) in the drawing.

The current definition of the arcosh(x) function gives only the primary
(positive) value of this double valued function. I might fix this one day.

There is one bug which I have been unable to find. This causes the machine
to crash when the program exits. As far as I can tell, the program exits
sucessfully, but the machine then locks up. If anyone can work out why this
is happening, please let me know.

Thanks and Credits
******************

Thanks to everyone who's given me tips, advice, help etc, also to all the
Acorn owners I've met in the last two and a half years, and especially those
I've met since getting my Arc last year. Also to everybody whose programs
I've looked at for ideas on coding for the Wimp. In particular, a few names
are:

        Andrew Author of Fervour Hersee
        Rupert I'll do it now... Johnson
        Mark Wot no monitor Collier
        Mark Wot no PRMs Smith
        Simon How many posts in one day Burrows

Thansk again everyone - And may the Acorn world flourish evermore!

Copyright Notice - Read and OBEY!!
**********************************

This application is copyright Tom Hughes. It is *not* Public Domain, but it
*is* Freeware. This means that you may use it yourself, and may distribute
it to others provided that you pass it on *as is*, with all the files with
which it came. You may not distribute it any way which leads to you or
anyone else making profit from it. This means that you can only charge
enough to cover the costs of media and postage involved in distribution, and
you may not use it as an incentive to buy something else. If in doubt,
contact the author at the address below.

The author's permission *must* be obtained before this application is
included on any Magazine disc, and it would be appreciated if PD libraries
could inform the author when they are distributing this application.

Bug reports, donations, complaints, thanks, free software etc to the author
please at the following addresses:

TermtimeTom HughesAllTom Hughes 
until57 Shakleton Roadother21 Parklands
June 93EarlsdontimesWotton-under-Edge
CoventryGloucestershire
CV5 6HTGL12 7LT

For a faster response during termtime until June 93, try internet email to
thughes@dcs.warwick.ac.uk or watch out for me on comp.sys.acorn or
monochrome (user glorfindel).
